#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<assert.h>
#include<memory.h>

//#define N 100
//
//typedef int SLDataType;
//// 静态顺序表
//typedef struct SeqList
//{
//	SLDataType arr[N];
//	int size;     // 顺序表的数据个数
//}SL;


typedef int SLDataType;

// 动态态顺序表
typedef struct SeqList
{
	SLDataType* data; // 数据区（顺序存放，每个存储单元都是连续的物理地址）
	int size;     // （实际存放的元素个数）
	int capacity; // （容量）
}SL;

// 接口函数
void SeqListInit(SL* ps); // 初始化
void SeqListPushBack(SL* ps, SLDataType n);      // 顺序表追加数据
void SeqListPrint(SL* ps);  // 顺序表数据打印
void SeqListDestory(SL* ps);
void SeqListPopBack(SL* ps); // 尾删
void SeqListPushFront(SL* ps, SLDataType n);    // 前推
void SeqListInit(SL* ps);  // 增容
void SeqListPopFront(SL* ps); // 尾删

// homework
// 
// 找到返回下标 ，没找到返回 -1
int SeqListFind(SL* ps, SLDataType n); // 查找
// 指定位置插入元素
void SeqListInsert(SL* ps, int pos, SLDataType ele); // 插入
// 删除指定位置的元素
void SeqListErase(SL* ps, int pos); // 删除